3.2 Entering Queries
. Querie'-'д нэвтрэх ' Өмнөх хэсэгт сервертэй хэрхэн холбогдохыг ярилцсан. Үүнийг хийснээр бүх өгөгдлийн сангаас select хийж болно гэсэн үг биш ээ гэхдээ зүгээр. Энэ хэсэгт хэд хэдэн query-тэй ажиллах,команд оруулах зэргийг үзнэ ээ. Version-ий дугаар,хэзээ оруулсан өдөр зэргийг серверээс асуухад хэлж өгнө.Энэ нь энгийн команд юм. mysql> '''SELECT VERSION(), CURRENT_DATE; ' +--------------+--------------+ | VERSION() | CURRENT_DATE | +--------------+--------------+ | 5.6.1-m4-log | 2010-08-06 | +--------------+--------------+ 1 row in set (0.01 sec) mysql> Доор байгаа query нь mysql-н талаар хэд хэдэн зүйл тайлбарлая Команд болгон нь цэг таслалтай байдаг. (There are some exceptions where a semicolon may be omitted. QUIT, mentioned earlier, is one of them. We'll get to others later.) • When you issue a command, mysql sends it to the server for execution and displays the results, then prints another mysql> prompt to indicate that it is ready for another command. Mysql-д команд өгөхөд тэр командаа сервер лүү илгээн гүйцэтгэж үр дүнг нь дэлгэцэнд илгээдэг.Өөр mysql> хэвлэн өөр команд өгөхөд бэлэн болсныг илтгэнэ. Mysql нь query-г хүснэгтэн хэлбэрээр дэлгэцэнд хэвлэдэг.Эхний мөрөнд баганы label-үүд байна.Query-н үр дүн баганаар гардаг. Баганы label-үүд гэдэг нь table-н өгөгдлийн сангаас ирдэг баганы нэрүүд юм.хэрвээ илэрхийлэл table-н баганаас их байвал өөрөө зохицуулчихдаг. Mysql хэр удаан ажиллаж байгааг мөр хэлбэрээр харуулдаг. Түлхүүр үг нь том жижиг нь хамаагүй.Дараах query-нүүд нь ижилхэн. mysql> 'SELECT VERSION(), CURRENT_DATE; ' mysql> 'select version(), current_date; ' mysql> 'SeLeCt vErSiOn(), current_DATE; ' Доор өөр нэг query байна.Энэ нь энгийн тооны машин шиг mysql-г ажиглаж болно. mysql> 'SELECT SIN(PI()/4), (4+1)*5; ' +------------------+---------+ | SIN(PI()/4) | (4+1)*5 | +------------------+---------+ | 0.70710678118655 | 25 | +------------------+---------+ 1 row in set (0.02 sec) Доор өөр нэг query байна энэ нь хоорондоо хамааралтай query-нүүдийг тус тусад нь бичилгүйгээр нэг мөрөнд бичиж болно.Гэхдээ хоорондоо цэг таслалтай байна. mysql> 'SELECT VERSION(); SELECT NOW(); ' +--------------+ | VERSION() | +--------------+ | 5.6.1-m4-log | +--------------+ 1 row in set (0.00 sec) +---------------------+ | NOW() | +---------------------+ | 2010-08-06 12:17:13 | +---------------------+ 1 row in set (0.00 sec) Командууд нь заавал ч үгүй нэг мөрөнд бичих албагүй.Урт командуудыг хэд хэдэн мөрөнд бичиж болно энэ бол асуудал биш.Ямар ч форматтай зүйлийг оруулж болдог.Гэхдээ цэг таслалтай бол ажиллуулдаг.Цэг таслал л байвал ажиллана гэж үздэг. mysql> 'SELECT ' -> 'USER() ' -> ', ' -> 'CURRENT_DATE; ' +---------------+--------------+ | USER() | CURRENT_DATE | +---------------+--------------+ | jon@localhost | 2010-08-06 | +---------------+--------------+ Энэ жишээнд цэг таслал тавьтал нь хүлээнэ.Цэг таслал тавихгүй бол нэг команд үргэлжилж байна гэж үздэг. Команд өгөгдөөд эхэлсэн хэрнээ тэр команднаас гарч хэвийн байдйлдаа буцахын тулд \ с гэсэн командыг ашиглаж болно. mysql> 'SELECT ' -> 'USER() ' -> '\c ' mysql> Here, too, notice the prompt. It switches back to mysql> after you type \c, to indicate that mysql is ready for a new command. The following table shows each of the prompts you may see and summarizes what they mean about the state that mysql is in. 'Prompt Meaning ' mysql> Ready for new command. Шинэ команд бичихэд бэлэн болсон Дараагийн мөрөө хүлээхэд ашиглагдана.Д ээр жишээн дээр гарсан. Дараагийн мөрөө хүлээдэг мөн ганц ковечктой string-ээ дуусгахыг хүлээдэг. Хоёр ковечктой string-ээ дуусгахыг хүлээдэг. Дараагийн мөрөө хүлээдэг мөн (“`”) эхэлснээ дуусахыг хүлээдэг. Дараачийн мөрөө хүлээдэг мөн /*> эхэлсэн бол /* дуусахыг хүлээдэг. Multiple-line statements-г ашиглах нь их эрсдэлтэй.Хэрэглэгч өгөгдлөө оруулаад л байдаг хэрвээ цэг таслалаа мартчихсан үед mysql нь өөр зүйл оруулна гээд хүлээгээд л байдаг.Ийм муу талтай. mysql> 'SELECT USER() ' Хэрвээ таньд ийм зүйл тохиолдсон бол та зүгээр л оруулж байсан өгөгдлийнхөө ард цэг таслал таслал тавьчих тэгвэл mysql ажиллаж эхэлнэ. mysql> '''SELECT USER()' ' ' ' -> ; ' +---------------+ | USER() | +---------------+ | jon@localhost | +---------------+ Нэг болон хоёр ковечк байхын бол ихэвчлэн мөр төрөлд хэрэглэдэг мөн нэг болон хоёр ковечк байхын бол multiple line-тай холбодог. ‘> болон “> байвал мөр тэмдэгт байна мөн ‘ бас “ тохирохыг нь тавиагүй байна гэсэн үг. Жишээ нь: mysql> '''SELECT * FROM my_table WHERE name = 'Smith AND age < 30; ' '> Та Select гэж бичээд Enter дараад хүлээвэл үр дүн гарахгүй ээ.Та ингэж хүлээхийнхээ оронд ‘> бичээд үз.Энэ нь таны бичиж байгаа string дуусаагүйг илтгэнэ.(Та энэ алдааг харж байна уу? ’Smith хоёр дахь ковечк байхгүй байгааг хэлнэ.) Ийм зүйл болвол яах уу?Хамгийн энгийн нь cancel команд.Энэ нь төрөл нь таарахгүй ч гэсэн mysql ийм зүйлийг ойлгодог.Та энэ string-г дуусгахынхаа оронд cancel командыг ашиглан гарсан нь дээр.Жишээ нь: mysql> 'SELECT * FROM my_table WHERE name = 'Smith AND age < 30; ' '> '\c ''' mysql> Cancel командыг ашигласнаар шинэ команд бичихэд бэлэн болно. `> энэ нь ‘>,”> энэ 2той адилхан боловч заавал `> төгсөх албагүй.